package net.maku.project.service;

import net.maku.framework.common.utils.PageResult;
import net.maku.framework.mybatis.service.BaseService;
import net.maku.project.vo.*;
import net.maku.project.query.InfoQuery;
import net.maku.project.entity.InfoEntity;

import java.util.List;

/**
 * 项目信息
 *
 * @author lvpb lv941226@gmail.com
 * @since 1.0.0 2024-07-08
 */
public interface InfoService extends BaseService<InfoEntity> {

    PageResult<InfoVO> page(InfoQuery query);

    void save(InfoVO vo);

    void calculateStatusDuration(InfoEntity info) ;

    void update(InfoVO vo);

    void delete(List<Long> idList);

    InfoVO getInfoByCode(String code);

    PageResult<SimpleInfoVO> getSimpleInfos(SimpleSearchVO simpleSearchVO);

    InfoVO getInfoById(Long id);

    void export();

    List<InfoEntity> selectUnFinishPorject();

    ProjectCountVO getInfoCount();

    List<TimeOutInfoVO> getTimeOutInfo();

    PageResult<InfoWithStatesVO> plzPage(SimpleSearchVO simpleSearchVO);

}